<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
            width: 300px;
            height: 300px;
            background-color: orange;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: yellow;
        }
    </style>
    <script>
        // 事件的传播分为三个阶段：
        // 1.捕获阶段-最外层的祖先元素向目标元素进行事件的捕获，但是默认此时不会触发事件
        // 2.目标阶段-事件捕获到目标元素，捕获结束后开始在目标元素上触发事件
        // 3.冒泡阶段-事件从它的目标元素向祖先元素传递，依次触发祖先元素上的事件
        // 如果希望在捕获阶段就触发事件，则可以将addEventListener中的第三个参数设置为true
        window.onload = function (){
            var box1 = document.getElementsByClassName("box1")[0];
            box1.addEventListener("click",function(){alert("我是box1");},false);
            var box2 = document.getElementsByClassName("box2")[0];
            box2.addEventListener("click",function(){alert("我是box2");},false);
            var box3 = document.getElementsByClassName("box3")[0];
            box3.addEventListener("click",function(){alert("我是box3");},false);
        }
    </script>
</head>
<body>
    <div class="box1">
        <div class="box2">
            <div class="box3"></div>
        </div>
    </div>
</body>
</html>